<?php

class Application_Model_InformeMMRMensualProyecto extends Sgit_Model
{
    protected $_name = 'imputacion_circuitos';
    protected $_primary = 'id';

  
    
    public function getDatos($id_pep,$idZona,$anio,$col,$nombre='')
    {
        
        $select = $this->getAdapter()->select();
        $select->from(array($this->_name), array('value' => new Zend_Db_Expr("ROUND(SUM($col),2)"), 'mes'));
        
        $select->joinLeft('proyectos_circuitos', "proyectos_circuitos.id = {$this->_name}.id_proyecto", array());
        $select->where('anio = ?', $anio);
        $select->where("$this->_name.id_zona = ?", $idZona);
        $select->where('id_pep =?', $id_pep);
        $select->where('arc =?', 'Coste');
        $select->group(array('anio', 'mes'));


        $facturacion = $this->getAdapter()->fetchAll($select);
        $filas = $this->assocArray2($facturacion, 'mes');

        $mes_cerrado=max(array_keys($filas));



        $fecha=new Zend_Date();
        $fecha->setDay(10);
        
        for ($i = 1; $i < 13; $i++)
        {
            $fecha->setMonth($i);
            $fecha->setYear($anio);
            
            $fila[$i]['categoria'] = $nombre;
            $fila[$i]['mes_cerrado'] = $mes_cerrado;
            $fila[$i]['mes'] =(int) $i;
            $fila[$i]['id_zona'] = $idZona;
            $fila[$i]['id_pep'] = $id_pep;
            $fila[$i]['anio'] = $anio;
            $fila[$i]['id_categoria'] = 6;
            
            if($filas[$i]['value']){
                $fila[$i]['value'] = $filas[$i]['value'];
            }  
           

            $f['acumulado'] += $fila[$i]['value'];
            $fila[$i]['acumulado'] = round($f['acumulado'], 2);
        }

        return $fila;
    }
    
    
    public function getDatosForecast($id_pep,$idZona,$anio,$col,$nombre='')
    {
        
        $select = $this->getAdapter()->select();
        $select->from(array($this->_name), array('value' => new Zend_Db_Expr("ROUND(SUM($col),2)"), 'mes'));
        
        $select->joinLeft('proyectos_circuitos', "proyectos_circuitos.id = {$this->_name}.id_proyecto", array());
        $select->where('anio = ?', $anio);
        $select->where("$this->_name.id_zona = ?", $idZona);
        $select->where('id_pep =?', $id_pep);
        $select->where('arc =?', 'Coste');
        $select->group(array('anio', 'mes'));


        $facturacion = $this->getAdapter()->fetchAll($select);
        $filas = $this->assocArray2($facturacion, 'mes');

        $mes_cerrado=max(array_keys($filas));


        $progresion=$this->getProgresion($id_pep,$idZona,$col);

        $fecha=new Zend_Date();
        $fecha->setDay(10);
        
        for ($i = 1; $i < 13; $i++)
        {
            $fecha->setMonth($i);
            $fecha->setYear($anio);
            
            $fila[$i]['categoria'] = $nombre;
            $fila[$i]['mes_cerrado'] = $mes_cerrado;
            $fila[$i]['mes'] =(int) $i;
            $fila[$i]['id_zona'] = $idZona;
            $fila[$i]['id_pep'] = $id_pep;
            $fila[$i]['anio'] = $anio;
            $fila[$i]['id_categoria'] = 6;
            
            if($filas[$i]['value']){
                $fila[$i]['value'] = $filas[$i]['value'];
            }else{
                $key=$fecha->get('yyyy-MM-dd');
                $fila[$i]['value']=$progresion['salida_regresion_ajuste'][$key];
            }     
           

            $f['acumulado'] += $fila[$i]['value'];
            $fila[$i]['acumulado'] = round($f['acumulado'], 2);
        }

        return $fila;
    }
    
    
    
    
    public function getProgresion($id_pep,$idZona,$col,$limit=8){
         
        $f=new Zend_Date();
        $f->setDay(10)->subMonth($limit);

         
         
        $select = $this->getAdapter()->select();
        $select->from(array($this->_name), array('fecha'=>new Zend_Db_Expr("DATE_FORMAT(CONCAT(anio,'-',mes,'-10'), '%Y-%m-%d')"),'value' => new Zend_Db_Expr("ROUND(SUM($col),2)")));
        $select->joinLeft('proyectos_circuitos', "proyectos_circuitos.id = {$this->_name}.id_proyecto", array());
        $select->where('id_pep =?', $id_pep);
        $select->where('arc =?', 'Coste');
        $select->where("$this->_name.id_zona = ?", $idZona);
        $select->where("DATE_FORMAT(CONCAT(anio,'-',mes,'-10'), '%Y-%m-%d') >= ?", $f->get('yyyy-MM-dd'));
        $select->group(array('anio', 'mes'));

       
        $data = $this->db->fetchPairs($select);



        return Sgit_Util_Regresion::run($data);

    }
    

}


